
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2024-02-02
 * Time: 22:57
 *
 * https://www.nowcoder.com/share/jump/7745334641706886705425
 */
public class BM86 {
    public String solve(String s, String t) {
        // 列竖式，位数不足补零
        StringBuilder sb = new StringBuilder();
        // 从最低位开始相加，记录进位数
        int i = s.length() - 1, j = t.length() - 1, carry = 0;
        // 必须将所有位数和进位处理完毕，才能结束
        while (i >= 0 || j >= 0 || carry != 0) {
            // 将上一次的进位，累加到当前位数
            carry += i >= 0 ? s.charAt(i--) - '0' : 0;
            carry += j >= 0 ? t.charAt(j--) - '0' : 0;
            // 记录位数
            sb.append(carry % 10);
            // 下一次的进位
            carry /= 10;
        }
        return sb.reverse().toString();
    }
}
